package com.cosmoplat.xikai.business.service;

import com.cosmoplat.xikai.business.domain.mes.req.*;
import com.cosmoplat.xikai.business.domain.mes.result.MesQrCodeResult;
import com.cosmoplat.xikai.business.domain.mes.result.MesResult;

/**
 * @ClassName MesRequestService
 * @Description mes接口请求
 * @Author wdf
 * @Date 2025/1/8
 */
public interface MesRequestService {

    /**
     * 调用mes
     * 物料获取
     * @date 16:29 2025/1/10
     * @param request
     * @return java.lang.String
     **/
    String sendRequest(MesRequest request) ;

    /**
     * 2.15 物料配送接口
     * 场景：
     * 转序
     * 叫料
     * 送料
     *
     * @date 16:29 2025/1/10
     * @param distribution
     **/
    MesResult<Void>  materialDistribution(MesMaterialDistributionRequest distribution);

    /**
     * 2.13.产线报警接口
     * 场景：
     * 缺料
     * 质量异常
     * 物料错误
     *
     * @date 16:29 2025/1/10
     * @param alarm
     **/
    MesResult<Void> alarm(MesLineAlarmRequest alarm);


    /**
     * 2.14.报警关闭接口
     * @date 16:29 2025/1/10
     * @param alarmClose
     **/
    MesResult<Void> alarmClose(MesAlarmCloseRequest alarmClose);

    /**
     * 扫码获取物料数量
     * 2.24.器具物料信息查询接口
     * @date 17:14 2025/1/10
     * @param qrCode
     * @return com.cosmoplat.xikai.business.domain.mes.result.MesQrCodeResult
     **/
    MesQrCodeResult scanCodeToMaterialQty(MesQrCodeRequest qrCode);


    /**
     * 2.17.任务完工与工时汇报接口
     * @date 16:01 2025/1/13
     * @param finishTask
     * @return com.cosmoplat.xikai.business.domain.mes.result.MesResult
     **/
    MesResult<Void> finishTask(MesFinishTaskRequest finishTask);
}
